package com.itzhoun;

/**
 * @author 周楠
 * @Date 2023/03/06/下午 9:49
 */
public class HandlerClient {

    /**
     * 抽象处理者（Handler）角色：定义一个处理请求的接口，包含抽象处理方法和一个后继连接。
     * 具体处理者（Concrete Handler）角色：实现抽象处理者的处理方法，判断能否处理本次请求，如果可以处理请求则处理，否则将该请求转给它的后继者。
     * 客户类（Client）角色：创建处理链，并向链头的具体处理者对象提交请求，它不关心处理细节和请求的传递过程。
     *
     *
     * */

    //例子来源 https://mp.weixin.qq.com/s?__biz=MzU0OTE4MzYzMw==&mid=2247542857&idx=2&sn=a4ffa1841e5bede09acd20bab44f4d73&chksm=fbb1a1b7ccc628a1308a7a1f9984c0cf659cf5aa7f34d654f6044588ceeed4b0f80848a4895b&scene=27

    public static void main(String[] args) {
        //第一关
        FirstPassHandler firstPassHandler = new FirstPassHandler();

        //第二关
        SecondPassHandler secondPassHandler = new SecondPassHandler();

        //第三关
        ThirdPassHandler thirdPassHandler = new ThirdPassHandler();

        firstPassHandler.setNext(secondPassHandler);

        secondPassHandler.setNext(thirdPassHandler);

        firstPassHandler.handler();

    }
}
